The Design and Implementation of RAP: A PDG-Based Register Allocator
نویسندگان
چکیده
This paper describes the design and implementation of a register allocator that performs the allocation over the Program Dependence Graph (PDG) representation of a routine. The PDG representation has been used successfully as the basis for various scalar optimizations as well as for detecting and improving parallelization for vector machines, multiple processor machines, and architectures that exhibit instruction level parallelism. Variations of the PDG have also been used for debugging and integrating di erent versions of a program via program-slicing, and to enable translation of imperative programs for dataow machines and demanddriven graph reducers. By basing register allocation on the PDG, the register allocation phase may be more easily integrated and intertwined with other optimization analyses and transformations. In addition, the advantages of a hierarchical approach to global register allocation can be attained without constructing an additional structure used solely for register allocation.
منابع مشابه
Register Allocation over the Program Dependence Graph Cindy
This paper describes RAP, a Register Allocator that allocates registers over the Program Dependence Graph (PDG) representation of a program in a hierarchical manner. The PDG program representation has been used successfully for scalar optimizations, the detection and improvement of parallelism for vector machines, multiple processor machines, and machines that exhibit instruction level parallel...
متن کاملCooperative Instruction Scheduling with Linear Scan Register Allocation
Linear scan register allocation is an attractive register allocation algorithm because of its simplicity and fast running time. However, it is generally felt that linear scan register allocation yields poorer code than allocation schemes based on graph coloring. In this paper, we propose a pre-pass instruction scheduling algorithm that improves on the code quality of linear scan allocators. Our...
متن کاملColoring Register Pairs 1
Many architectures require that a program use pairs of adjacent registers to hold double-precision oating-point values. Register allocators based on Chaitin's graph-coloring technique have trouble with programs that contain both single-register values and values that require adjacent pairs of registers. In particular, Chaitin's algorithm often produces excessive spilling on such programs. This ...
متن کاملThe Efficacy of an SFL-Oriented Register Instruction in Improving Iranian EFL Learners’ Writing Performance and Perception: Language Proficiency in Focus
The current study sought to explore the impact of SFL-oriented register instruction on Iranian EFL learner’ writing performance with a central focus on their English proficiency level. As its secondary aim, the study delved deeply into the learners’ perception of the register-based instruction. To these ends, 50 intermediate and 50 advanced Iranian EFL learners were selected randomly and assign...
متن کاملA Framework for End-to-End Evaluation of Register Allocators
We present RALF, a framework for end-to-end evaluation of register allocators. Built on top of gcc, RALF enables evaluation and comparison of register allocators in the setting of an industrialstrength compiler. RALF supports modular plug-and-play of register allocators without modifying the compiler implementation at all. RALF provides any plugged-in register allocator with an intermediate pro...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Softw., Pract. Exper.
دوره 28 شماره
صفحات -
تاریخ انتشار 1998